#ifndef __BLACK_TYPES_H__
#define __BLACK_TYPES_H__

#include "default.h"
#include <emmintrin.h>

namespace black
{
	typedef unsigned int		uint;
	typedef unsigned long		ulong;
	typedef unsigned char		uchar;

	typedef short int			int16;
	typedef unsigned short int	uint16;

	typedef unsigned char		data8;

	union data32
	{
		float			f;
		int				i;
		unsigned int	ui;
		char			c[4];
		unsigned char	uc[4];
	};

	union data128
	{
		float			f[4];
		__m128			m128;
		int				i[4];
		unsigned int	ui[4];
		char			c[16];
		unsigned char	uc[16];
#ifdef bX360
		__vector4 x360;
#endif
	};

#define fFLOAT_SIGN_MASK		0x10000000
#define fFLOAT_EXPONENT_MASK	0x7f800000
#define fFLOAT_MANTISSA_MASK	0x007fffff

#define bM128(x)        static_cast<__m128&>( x )
#define bConstM128(x)   static_cast<const __m128&>( x )
}

#endif // __BLACK_TYPES_H__
//---------------------------------------------------------------------------------------
// Copyright (c) 2009 Jounayd Id Salah.
// All rights reserved.
//---------------------------------------------------------------------------------------
